/**
 * @description 获取变量的类型
 * @param {any} value 任意类型的变量
 * @returns {string} 返回变量的类型字符串，例如"String"、"Number"等 *
 *
 * 通过调用Object.prototype.toString方法，并对其返回值进行处理，来获取传入变量的类型。
 * 这种方法可以更准确地获取变量的类型，尤其是对于那些通过new操作符创建的对象。
 */
const variableType = (value: any): string => {
  return Object.prototype.toString.call(value).slice(8, -1)
}
/**
 * @description 判断给定的值是否为函数类型。
 * @param {any} value 任意类型的值，用于检查是否为函数类型。
 * @returns {boolean} 如果值是函数类型，则返回true；否则返回false。
 */
function isFunction(value: any): boolean {
  return variableType(value) === 'Function' && typeof value === 'function'
}

export { variableType, isFunction }
